Scroll to navigation

ADD_KEY(2) Gestion des clés sous Linux ADD_KEY(2)

NOM

add_key - Ajouter une clé au gestionnaire des clés du noyau

SYNOPSIS

#include <keyutils.h>

key_serial_t add_key(const char *type, const char *description,
                     const void *payload, size_t plen,
                     key_serial_t keyring);

DESCRIPTION

add_key() demande au noyau de créer ou de mettre à jour une clé ayant un type et une description donnés, de l'instancier avec une charge utile (payload) de longueur plen, de l'attacher au trousseau (keyring) spécifié, et de renvoyer son numéro de série.

Le type de clé peut rejeter les données s'il est dans un mauvais format ou s'il est invalide de toute autre façon.

Si le trousseau (keyring) contient déjà une clé avec ce type et cette description, alors, si le type de la clé le permet, cette clé sera mise à jour au lieu de créer une nouvelle clé. Dans le cas contraire, une nouvelle clé sera créée, et le trousseau sera mis à jour pour remplacer le lien vers l'ancienne clé par un lien vers la nouvelle.

Le numéro de série du trousseau de destination peut être celui d'un trousseau déjà existant, ou peut être l'identifiant d'un trousseau spécial :

Pour indiquer le trousseau spécifique au processus léger (thread) de l'appelant.
Pour indiquer le trousseau spécifique au processus de l'appelant.
Pour indiquer le trousseau spécifique à la session de l'appelant.
Pour indiquer le trousseau spécifique à l'UID de l'appelant.
Pour indiquer le trousseau spécifique à la session de l'UID de l'appelant.

TYPES DE CLÉS

Un certain nombre de types de clés sont disponibles dans le code de base du gestionnaire des clés, et ils peuvent être utilisés dans cette fonction :

Les clés de type user peuvent contenir des données quelconques, et la description peut être n'importe quelle chaîne valide, bien qu'il soit préférable de préfixer la description avec une chaîne représentant le service pour lequel la clé est utilisée, suivi du caractère deux-points (par exemple « afs:ma-cle »). Pour des clés de ce type, l'argument payload peut être vide ou NULL.
Les trousseaux (keyring) sont des types de clé spéciaux qui peuvent contenir des liens vers des séquences d'autres clés de tout type. Si cette interface est utilisée pour créer un trousseau, alors l'argument payload doit valoir NULL, et plen doit être nul.

VALEUR RENVOYÉE

En cas de succès, add_key() renvoie le numéro de série de la clé créée ou mise à jour. En cas d'erreur, la valeur -1 est renvoyée et errno contient un code d'erreur approprié.

ERREURS

Le trousseau n'existe pas.
Le trousseau a expiré.
Le trousseau a été révoqué.
La charge utile (payload) est invalide.
Il n'y a pas assez de mémoire pour créer une clé.
Le quota de clés de cet utilisateur serait dépassé si la clé était créée ou ajoutée au trousseau.
Le trousseau n'était pas disponible pour pouvoir être modifié par l'utilisateur.

ÉDITION DE LIENS

Bien qu'il s'agisse d'un appel système Linux, cette fonction n'est pas présente dans libc, mais peut être trouvée dans libkeyutils. L'édition des liens doit être être effectuée avec l'option -lkeyutils.

VOIR AUSSI

keyctl(1), keyctl(2), request_key(2)

COLOPHON

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Denis Barbier (2010).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».

25 février 2010 Linux